import {ipcRenderer} from 'electron'

// Custom APIs for renderer
export const manageApi = {
  mainMsgBack: null, //main进程消息返回事件
  async readFileStringPreload(fileName, encoding) {
    return await ipcRenderer.invoke('readFileStringMain', fileName, encoding)
  },

  async getAppVersionPreload() {
    return await ipcRenderer.invoke('getAppVersionMain')
  },

  async initAdbEnvPreload(): Promise<any> {
    return await ipcRenderer.invoke('initAdbEnvMain')
  },

  async runAdbCmdPreload(para): Promise<any> {
    return await ipcRenderer.invoke('runAdbCmdMain', para)
  },

  async runAdbCmdNoLogPreload(para): Promise<any> {
    return await ipcRenderer.invoke('runAdbCmdNoLogMain', para)
  },

  async saveRecordPreload(): Promise<any> {
    return await ipcRenderer.invoke('saveRecordLogMain')
  },

  async getProjectDirsPreload(): Promise<any> {
    return await ipcRenderer.invoke('getProjectDirsMain')
  },

  async loadProjectDirsPreload(para): Promise<any> {
    console.log('loadProjectDirsPreload', para)
    return await ipcRenderer.invoke('loadProjectDirsMain', para)
  },

  //标题栏事件
  async selectDirPathPreload(para) {
    return await ipcRenderer.invoke('selectDirPathMain', para)
  },

  //保存项目路径
  async saveProjectPathPreload(para) {
    return await ipcRenderer.invoke('saveProjectPathMain', para)
  },

  //保存项目标签
  async saveProjectFlagPreload(para) {
    return await ipcRenderer.invoke('saveProjectFlagMain', para)
  },

  //保存项目标签
  async saveDevToolsPreload(para) {
    return await ipcRenderer.invoke('saveDevToolsMain', para)
  },

  //获取项目路径
  async getProjectPathPreload(para) {
    return await ipcRenderer.invoke('getProjectPathMain', para)
  },

  //获取项目标签
  async getProjectFlagPreload(para) {
    return await ipcRenderer.invoke('getProjectFlagMain', para)
  },

  //获取项目标签
  async getDevToolsPreload(para) {
    return await ipcRenderer.invoke('getDevToolsMain', para)
  },

  //获取项目标签
  async getPlatformPreload(para) {
    return await ipcRenderer.invoke('getPlatformMain', para)
  },

  //导出项目配置
  async importManageDataPreload(para) {
    return await ipcRenderer.invoke('importManageDataMain', para)
  },

  //导出项目配置
  async exportManageDataPreload(para) {
    return await ipcRenderer.invoke('exportManageDataMain', para)
  },

  //标题栏事件
  async titleActionPreload(para) {
    ipcRenderer.send('titleActionMain', para)
  },

  //执行cmd命令
  async runCmdPreload(para) {
    ipcRenderer.send('runCmdMain', para)
  },

  //关闭应用
  async closeAppPreload(para) {
    await ipcRenderer.invoke('closeAppMain', para)
  },

  handleReceiveMessagePreload(cb) {
    if (!this.mainMsgBack) {
      ipcRenderer.on('mainToRendererMsg', (event, args) => {
        this.mainMsgBack(args)
      })
    }
    this.mainMsgBack = cb
  }
}
